package com.seari.enums;

import java.util.ArrayList;
import java.util.List;

/**
 * 角色类型，主要用于权限的用户创建页面，分辨“超级管理员”、“管理员”、“操作员”和“普通用户”
 */
public enum RoleTypeEnums {

    /**
     * 管理员级别
     */
    SUPER_ADMIN("超级管理员","superAdmin",0),
    ADMIN("管理员","admin",0),

    /**
     * 操作员级别
     */
    OPERATOR("操作员","operator",1);

    RoleTypeEnums(String name,String code, Integer level){
        this.name = name;
        this.code = code;
        this.level = level;
    }

    private String name;

    private String code;

    private Integer level;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public Integer getLevel() {
        return level;
    }

    public void setLevel(Integer level) {
        this.level = level;
    }

    /**
     * 获取管理员级别的角色code
     * @return
     */
    public static List<String> getAdminLevelRoles(){
        List<String> roleList = new ArrayList<>();
        for (RoleTypeEnums value : RoleTypeEnums.values()) {
            if(value.getLevel() == 0){
                roleList.add(value.getCode());
            }
        }
        return roleList;
    }

    /**
     * 获取操作员级别的角色code
     * @return
     */
    public static List<String> getOperatorLevelRoles(){
        List<String> roleList = new ArrayList<>();
        for (RoleTypeEnums value : RoleTypeEnums.values()) {
            if(value.getLevel() == 1){
                roleList.add(value.getCode());
            }
        }
        return roleList;
    }
}
